#ifndef AUTONOMOUS_HANDLER_H
#define AUTONOMOUS_HANDLER_H

#include "Include.h"
#include "RobotDriveCustom.h"
#include "RobotPayload.h"

#define AUTONOMOUS_MODES 5

namespace Team675
{

class AutonomousHandler
{
public:
	typedef enum {AUTONOMOUS_KINECT, AUTONOMOUS_STILL, AUTONOMOUS_FORWARD, AUTONOMOUS_CENTER, AUTONOMOUS_DISABLED} AutonomousMode;
	
	AutonomousHandler(AutonomousMode _mode, Team675::RobotDrive* _drive, Team675::RobotPayload* _payload);
	~AutonomousHandler();
	
	void Update();
	
	void InitChooser();
private:
	AutonomousMode m_autonomousMode;
	
	Team675::DriveType* m_driveType;
	Team675::RobotDrive* m_robotDrive;
	Team675::RobotPayload* m_robotPayload;
	
	SendableChooser* m_modeChooser;
	AutonomousMode* m_modesList;
	
	bool m_autonomousStarted;
	Timer m_autonomousTimer;
};

}

#endif
